A mouse data entry system is generally illustrated in FIG. 1 and allows a user to interactively enter data into a computer in an easy, natural manner. Such a system typically comprises a hand-held, movement sensitive device 20, a mouse interface 22, cursor driver circuitry 24 for controlling the cursors, pointers, and/or graphics objects 26 on a display screen 28, and software for transmitting mouse parameters such as device location to application programs 30. The functional distinction between the mouse interface 22 and the cursor driver 24 is often omitted. Movement of the device 20 across a flat surface causes cursor 26 on display screen 28 to move or variables in a computer application program to change as illustrated in FIG. 2. This data entry system allows a user to "point" on the display screen or to affect the execution of application programs.
Examples of the use of such data entry systems include: 1) cursor control in which the system is used to move a cursor or pointer across a computer screen for the purpose of quickly identifying objects or text appearing on the screen; 2) painting and drawing in which the mouse system is often used to control pens and paintbrushes to "draw" and "paint" on the screen in graphics application programs; 3) creation and metamorphosis of graphics objects where the mouse system can also be used to control the creation of graphics primitives such as circles, rectangles, polygons, etc. and to build and change the shape of 2-dimensional and 3-dimensional objects in the computer and 4) manipulation of text and graphics where the mouse system can be used to interactively move, delete, scale, flip, and rotate text and graphics objects on the computer screen.
Currently mouse input systems, as defined above, allow the user to directly control only variables that are related to changes in the x and y coordinates of the device as it is moved across a flat surface. Hence the user can currently only change information on the computer screen or in application programs by changing the location of the device.
Current mouse interactive data entry systems further do not allow users to rotationally control a cursor, pointer, or the orientation of a graphic object or enter data into an application program by rotating the movement sensitive device. Rather, as stated above, current systems allow the user to control the position of the cursor on a screen and to enter data in application programs that is related to the position (x and y coordinates) of the movement sensitive device.
Interactive graphics systems exist where graphics objects and text can be rotated indirectly by moving a movement sensitive device in a circular motion so that the cursor on the display screen describes an arc around the center of the object. In those systems the change in the orientation of the object is related to the change in the slope of a line connecting the cursor and the center of the rotating object, where the position of the cursor is related to the position of the movement sensitive device. The operation of such a system is illustrated in FIG. 3 and is described in U.S. Pat. Nos. 4,661,810 and 4,745,405. Since these methods operate in an indirect fashion their effectiveness is sub-optimal. For example, these existing systems do not allow changes in the lateral movement of the graphics objects to take place simultaneously with rotating action. Indirect operation may also increase tediousness, and the current systems do not accommodate rotating cursors and paintbrushes.
A movement sensitive device of the mouse data entry system may operate mechanically or electronically. In the case of a mechanical device, movement across a planar surface is detected with one or more balls or wheels and is translated into measures of the distance traveled in the x and y directions.
The hand-held movement sensitive device of the mouse data entry system may also detect changes in position electronically. Such electronic devices include active or passive tablets which are imprinted with regular or irregular grids. The device electrically couples with the grid of the tablet or transmits and detects waves reflected by the grid of the tablet. This interaction with the tablet is used to determine the lateral position of the movement sensitive device on the tablet. Mouse movement and button states are transmitted to the mouse interface and are used to control the cursor, pointer, and/or graphics objects.
The current art includes several hand-held devices with physical configurations such that their output can be used to sense changes in their orientation (IBM Technical Disclosure Bulletin, Vol. 27 No. 6, Nov., 1984 by Nomura and Saitoh, Japanese Pat. No. 60-193032 issued to Mitsubishi, and U.S. Pat. No. 4,814,553 to Advanced Robotics Technology, Inc.). Current systems using the abovementioned devices generate orientation information in the process of determining a more precise estimate of the absolute position of the hand-held device. For example, in the case of the mechanical device comprising two balls (Numor, 1984 and Mitsubishi, 1985), the x and y coordinates measured by the hand-held device are in a coordinate system which is defined by the angular orientation of the mouse and which therefore changes with device orientation. The systems proposed by Nomura and by Mitsubishi attempt to use orientation of the mouse to continuously correct the x and y coordinates to correspond to a constant coordinate system.
The mouse interface of a data input system typically comprises an electronic device, hardware or software, for converting movement data which it receives from the movement sensitive device, into display screen distance units. In addition to this task, the mouse interface keeps track of mouse interrupts. These interrupts, which are requested by an application program, are used by the mouse interface to interrupt the application program or its subroutines when a specific set of mouse events occurs, such as when a button is pressed. Besides servicing the moving device and communicating with application programs, the mouse interface must maintain a pointer or a cursor on the display screen. This function can be performed directly by the mouse interface or it can be accomplished by a display screen hardward dependent cursor driver. Where a cursor driver is used, the mouse interface passes the coordinates of the cursor to the cursor driver which places a cursor on the display screen at the requested coordinates.
A need has thus arisen for a mouse data entry system which permits the user to rotate a cursor, pointer, or graphics object and interactively enter data into the computer by rotating a hand-held, movement sensitive device on a flat surface area. Such a system must also provide for lateral movement of cursor, pointer, or graphics objects (either simultaneously or non-simultaneously with rotating motion) by moving the device laterally. A need has further arisen for an improved cursor or pointer control to thereby allow better cursor and pointer use for user/program interaction in interactive application programs.